﻿using System;
using System.Net.Sockets;

namespace Kay.Communication.Framework
{
    /// <summary>
    /// 用户信息
    /// </summary>
    public class ContactsInfo
    {
        /// <summary>
        /// 获取或设置用户标识
        /// </summary>
        public string Id { get; set; }

        /// <summary>
        /// 获取或设置用户名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 获取或设置用户密码
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 获取或设置登录时间
        /// </summary>
        public DateTime LoginTime { get; set; }

        /// <summary>
        /// 获取或设置用户 Socket 对象
        /// <para>用于服务端存储客户端</para>
        /// </summary>
        internal Socket Socket { get; set; }

        /// <summary>
        /// 获取或设置代表通信客户端的网络终结点的字符串表示形式
        /// </summary>
        public string RemoteEndPointByServer { get; set; }

        /// <summary>
        /// 获取或设置代表通信客户端的网络终结点的字符串表示形式
        /// </summary>
        public string LocalEndPointByServer { get; set; }

        /// <summary>
        /// 获取或设置代表通信客户端的网络终结点的字符串表示形式
        /// </summary>
        public string LocalEndPointByClient { get; set; }

        /// <summary>
        /// 获取或设置代表通信客户端的网络终结点的字符串表示形式
        /// </summary>
        public string RemoteEndPointByClient { get; set; }

        /// <summary>
        /// 获取或设置是否为传输文件创建的用户
        /// </summary>
        public bool TransferFile { get; set; }

        /// <summary>
        /// 获取或设置是否是 WebSocket
        /// </summary>
        public bool WebSocket { get; set; }

        /// <summary>
        /// 获取或设置 WebSocket 的 Key
        /// </summary>
        public string WebSocketKey { get; set; }

        /// <summary>
        /// 接受 WebSocket 生成的 Key
        /// </summary>
        public string AcceptKey { get; set; }

        /// <summary>
        /// 计算机名称
        /// </summary>
        public string HostName { get; set; }
    }
}